home *** CD-ROM | disk | FTP | other *** search
- 10 REM Copyright 1987, Arnold B. Krueger, Grosse Pointe Woods, MI. 48236
- 20 N$ = "Mod MDM-75 Mod Eq MDT-27"
- 30 REM lower crossover
- 40 REM roll-on
- 50 F1 = .0001
- 60 Q1 = .707
- 70 REM roll-off
- 80 F2 = 3000!
- 90 Q2 = 1.5
- 100 REM lower driver
- 110 F3 = 600!
- 120 Q3 = 1.1
- 130 F4 = 6000!
- 140 Q4 = .6
- 150 REM midrange hi eq
- 160 F5 = 1E+07
- 170 Q5 = .707
- 180 REM upper crossover
- 190 REM roll-on
- 200 F6 = 3000!
- 210 Q6 = 1.1
- 220 REM roll-off
- 230 F7 = 10000000#
- 240 Q7 = .7
- 250 REM upper driver
- 260 F8 = 1300!
- 270 Q8 = 1.5
- 280 F9 = 14000!
- 290 Q9 = .7
- 300 REM tweeter hi eq
- 310 FA = 20000!
- 320 QA = 1.5
- 321 goto 330
- 325 stop
- 330 DEF FNPHLP1(W,WC,D) = ATN(W/WC)
- 340 DEF FNPHHP1(W,WC,D) = ATN(WC/W)
- 350 DEF FNPHLP2(W,WC,D) = -ATN( D*W /(WC*(1.000001-(W/WC)^2 ) ) ) + PI*(W>WC)
- 360 DEF FNPHHP2(W,WC,D) = ATN( D*WC/(W *(1.000001-(WC/W)^2 ) ) ) - PI*(W<WC)
- 370 DEF FNAMLP1(W,WC,D) = 1 / SQR(1!+(W/WC)^2)
- 380 DEF FNAMHP1(W,WC,D) = 1 / SQR(1!+(WC/W)^2)
- 390 DEF FNAMLP2(W,WC,D) = 1 / SQR(1+(W/WC)^4+(D*D-2!)*(W/WC)^2)
- 400 DEF FNAMHP2(W,WC,D) = 1 / SQR(1+(WC/W)^4+(D*D-2.000001)*(WC/W)^2)
- 410 DEF FNDBV(AMP) = 20!*LOG(AMP)*LOGCONV
- 420 DEF FNPHD(RAD) = 180!*RAD/PI
- 430 DEF FNSUMA(AA,AB,PA,PB) = SQR((AA*SIN(PA)+AB*SIN(PB))^2 + (AA*COS(PA)+AB*COS(PB))^2 )
- 440 DEF FNSUMPW(AA,AB,PA,PB) = SQR((AA*AA*SIN(PA)+AB*AB*SIN(PB))^2 + (AA*AA*COS(PA)+AB*AB*COS(PB))^2 )
- 450 DEF FNSUMPN(AA,AB,PA,PB) = AA*SIN(PA)+AB*SIN(PB)
- 460 DEF FNSUMPD(AA,AB,PA,PB) = AA*COS(PA)+AB*COS(PB)
- 470 DEF FNDIRF(AA,AB,PA,PB) = ABS((SIN((PA-PB))*(((AA >= AB)*AB/AA)+((AB > AA)*AA/AB) )))
- 480 PI = ATN(SQR(3!))*3
- 490 LOGCONV=1!/LOG(10!)
- 500 LOGCONV=1!/LOG(10!)
- 510 DIM FREQT(20)
- 520 FREQT(1)=20:FREQT(2)=22:FREQT(3)=25:FREQT(4)=28:FREQT(5)=32:FREQT(6)=36
- 530 FREQT(7)=40:FREQT(8)=44:FREQT(9)=50:FREQT(10)=56:FREQT(11)=64:FREQT(12)=72
- 540 FREQT(13)=80:FREQT(14)=88:FREQT(15)=100:FREQT(16)=112
- 550 FREQT(17)=128:FREQT(18)=144:FREQT(19)=160:FREQT(20)=180
- 560 SCREEN 2 : KEY OFF : CLS
- 570 XS = ( LOG(20000)-LOG(20) )*LOGCONV
- 580 W1 = 2!*PI*F1:D1 = 1!/Q1
- 590 W2 = 2!*PI*F2:D2 = 1!/Q2
- 600 W3 = 2!*PI*F3:D3 = 1!/Q3
- 610 W4 = 2!*PI*F4:D4 = 1!/Q4
- 620 W5 = 2!*PI*F5:D5 = 1!/Q5
- 630 W6 = 2!*PI*F6:D6 = 1!/Q6
- 640 W7 = 2!*PI*F7:D7 = 1!/Q7
- 650 W8 = 2!*PI*F8:D8 = 1!/Q8
- 660 W9 = 2!*PI*F9:D9 = 1!/Q9
- 670 WA = 2!*PI*FA:DA = 1!/QA
- 680 X = 1
- 690 LINE(52,1)-(639,1)
- 700 LINE(52,180)-(639,180)
- 720 FOR ROW = 22.5 TO 157.5 STEP 22.5
- 730 LINE(52,ROW)-(640,ROW),,,&hf000
- 740 NEXT ROW
- 770 FOR OCT = 0 TO 4
- 780 DECADE = 10^OCT
- 790 XSCALE = 75!*(LOG(20!*DECADE)-2.3)
- 800 LINE(XSCALE,1)-(XSCALE,180)
- 810 XSCALE = 75!*(LOG( 50!*DECADE)-2.3)
- 820 LINE(XSCALE,1)-(XSCALE,180)
- 830 XSCALE = 75!*(LOG(100!*DECADE)-2.3)
- 840 LINE(XSCALE,1)-(XSCALE,180)
- 850 XSCALE = XSCALE + 1
- 860 LINE(XSCALE,1)-(XSCALE,180)
- 870 FOR NOTE = 1 TO 20
- 880 F = FREQT(NOTE)*DECADE
- 890 IF F > 50000! THEN GOTO 1750
- 900 W = 2!*F*PI
- 910 XS = 75!*(LOG(F)-2.3)
- 920 rem IF TOGGLE = 0 THEN TOGGLE = 1 ELSE TOGGLE = 0
- 930 REM Lower xover calculations
- 940 REM Lower xover Amplitude
- 950 YLA = FNAMHP2(W,W1,D1)*FNAMLP2(W,W2,D2)
- 960 REM Lower driver calculations
- 970 REM Lower driver Amplitude
- 980 YMA = FNAMHP2(W,W3,D3)*FNAMLP2(W,W4,D4)*FNAMLP2(W,W5,D5)
- 990 REM lower system amplitude response
- 1000 SLA = YLA*YMA
- 1010 REM Pick something to plot
- 1020 YM = FNDBV(SLA)
- 1030 YM = (20!-YM)*4.5
- 1040 IF YM<10 THEN YM = 10
- 1050 IF YM>180 THEN YM = 180
- 1060 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1080
- 1070 LINE(XS,YM)-(OLDX,OLDYMA)
- 1080 OLDYMA = YM
- 1090 REM Lower xover Phase
- 1100 YLP = FNPHHP2(W,W1,D1)+FNPHLP2(W,W2,D2)
- 1110 REM Lower driver Phase
- 1120 YMP = FNPHHP2(W,W3,D3)+FNPHLP2(W,W4,D4)+FNPHLP2(W,W5,D5)
- 1130 REM lower system phase response
- 1140 SLP = YLP+YMP
- 1150 YM = FNPHD(SLP)
- 1160 YM = 90-YM/2
- 1170 IF YM>180 THEN YM = 180
- 1180 IF OCT=0 THEN IF NOTE=1 THEN GOTO 1200
- 1190 rem if TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYMP)
- 1191 line(xs,ym)-(oldx,oldymp),,,&hf0f0
- 1200 OLDYMP = YM
- 1210 REM Upper driver calculations
- 1220 REM Upper xover calculations
- 1230 REM Upper xover Amplitude
- 1240 YUA = FNAMHP2(W,W6,D6)*FNAMLP2(W,W7,D7)
- 1250 REM Upper driver Amplitude
- 1260 YTA = FNAMHP2(W,W8,D8)*FNAMLP2(W,W9,D9)*FNAMLP2(W,WA,DA)
- 1270 REM Upper system amplitude response
- 1280 SUA = YUA*YTA
- 1290 REM Pick something to plot
- 1300 YM = FNDBV(SUA)
- 1310 YM = (20!-YM)*4.5
- 1320 IF YM<10 THEN YM = 10
- 1330 IF YM>180 THEN YM = 180
- 1340 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1360
- 1350 LINE(XS,YM)-(OLDX,OLDYTA)
- 1360 OLDYTA = YM
- 1370 REM Upper xover Phase
- 1380 YUP = FNPHHP2(W,W6,D6)+FNPHLP2(W,W7,D7)
- 1390 REM Upper driver Phase
- 1400 YTP = FNPHHP2(W,W8,D8)+FNPHLP2(W,W9,D9)+FNPHLP2(W,WA,DA)
- 1410 REM Upper system phase response
- 1420 SUP = YUP+YTP
- 1430 REM pick something to plot
- 1440 YM = FNPHD(sUP)
- 1450 YM = 90-YM/2
- 1460 IF YM>180 THEN YM = 180
- 1470 IF OCT=0 THEN IF NOTE=1 THEN GOTO 1500
- 1490 rem if TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYTP)
- 1491 line(xs,ym)-(oldx,oldytp),,,&hf0f0
- 1500 OLDYTP = YM
- 1510 REM total system amplitude response
- 1520 SSA = FNSUMA(SLA,SUA,SLP,SUP)
- 1530 YM = FNDBV(SSA)
- 1540 YM = (20!-YM)*4.5
- 1550 IF YM<10 THEN YM = 10
- 1560 IF YM>179 THEN YM = 179
- 1570 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1590
- 1580 LINE(XS,YM)-(OLDX,OLDYSA)
- 1581 LINE(XS,YM+1)-(OLDX,OLDYSA+1)
- 1590 OLDYSA = YM
- 1620 SSA = FNSUMPw(SLA,SUA,SLP,SUP)
- 1630 YM = FNDBV(SSA)
- 1640 YM = (20!-YM)*4.5
- 1650 IF YM<10 THEN YM = 10
- 1680 IF YM>179 THEN goto 1710
- 1690 IF OCT=0 THEN IF NOTE = 1 THEN GOTO 1710
- 1700 rem IF TOGGLE = 0 THEN LINE(XS,YM) - (OLDX,OLDYsp):LINE(XS,YM+1) - (OLDX,OLDYsp+1)
- 1701 line(xs,ym)-(oldx,oldysp),,,&hcccc
- 1702 line(xs,ym+1)-(oldx,oldysp+1),,,&hcccc
- 1710 OLDYSP = YM
- 1720 OLDX = XS
- 1730 REM end of loops
- 1740 NEXT NOTE
- 1750 NEXT OCT
- 1760 LOCATE 1,1
- 1770 PRINT USING "#### d";180;
- 1780 LOCATE 23,1
- 1790 PRINT USING "#### d";-180;
- 1800 LOCATE 12,1
- 1810 PRINT USING "### dB";0!;
- 1820 LOCATE 6,1
- 1830 PRINT USING "### dB";10!;
- 1840 LOCATE 17,1
- 1850 PRINT USING "### dB";-10!;
- 1860 LOCATE 24,4
- 1870 PRINT USING "### Hz";20!;
- 1880 LOCATE 24,19
- 1890 PRINT USING "### Hz";100!;
- 1900 LOCATE 24,40
- 1910 PRINT USING " ## kHz";1!;
- 1920 LOCATE 24,62
- 1930 PRINT USING "### kHz";10!;
- 1940 LOCATE 24,70
- 1950 PRINT USING "### kHz";20!;
- 1951 goto 325
- 1960 LOCATE 2,40
- 1970 PRINT USING " & ";N$;
- 1980 LOCATE 3,40
- 1990 PRINT USING " &";"Amplitude: Phase: ";
- 2000 LINE(450,20)-(465,20)
- 2010 LINE(550,20)-(565,20),,,&HF0F0
- 2020 LOCATE 4,20
- 2030 PRINT USING "Fl: ##### Q1: #.## F2: ##### Q2: #.## F3: ##### Q3: #.##";F1;Q1;F2;Q2;F3;Q3;
- 2040 LOCATE 2,1
- 2050 END
-